home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / stdio / RCS / fopen.man,v < prev    next >
Text File  |  1990-06-27  |  3KB  |  162 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @@;
  7.  
  8.  
  9. 1.2
  10. date     90.06.27.11.15.36;  author shirriff;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     90.03.05.18.01.02;  author shirriff;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @@
  22.  
  23.  
  24. 1.2
  25. log
  26. @Added a cross-reference to man page.
  27. @
  28. text
  29. @.\" Copyright (c) 1980 Regents of the University of California.
  30. .\" All rights reserved.  The Berkeley software License Agreement
  31. .\" specifies the terms and conditions for redistribution.
  32. .\"
  33. .\"    @@(#)fopen.3s    6.3 (Berkeley) 5/27/86
  34. .\"
  35. .TH FOPEN 3S  "May 27, 1986"
  36. .UC 4
  37. .SH NAME
  38. fopen, freopen, fdopen \- open a stream
  39. .SH SYNOPSIS
  40. .B #include <stdio.h>
  41. .PP
  42. .SM
  43. .B FILE
  44. .B *fopen(filename, type)
  45. .br
  46. .B char *filename, *type;
  47. .PP
  48. .SM
  49. .B FILE
  50. .B *freopen(filename, type, stream)
  51. .br
  52. .B char *filename, *type;
  53. .br
  54. .SM
  55. .B FILE
  56. .B *stream;
  57. .PP
  58. .SM
  59. .B FILE
  60. .B *fdopen(fildes, type)
  61. .br
  62. .B char *type;
  63. .SH DESCRIPTION
  64. .I Fopen
  65. opens the file named by
  66. .I filename
  67. and associates a stream with it.
  68. .I Fopen
  69. returns a pointer to be used to identify the stream in subsequent operations.
  70. .PP
  71. .I Type
  72. is a character string having one of the following values:
  73. .TP 5
  74. "r"
  75. open for reading
  76. .ns
  77. .TP 5
  78. "w"
  79. create for writing
  80. .ns
  81. .TP 5
  82. "a"
  83. append: open for writing at end of file, or create for writing
  84. .PP
  85. In addition, each
  86. .I type
  87. may be followed by a "+" to have the file opened for reading and writing.
  88. "r+" positions the stream at the beginning of the file, "w+" creates
  89. or truncates it, and "a+" positions it at the end.  Both reads and writes
  90. may be used on read/write streams, with the limitation that an
  91. .I fseek, rewind,
  92. or reading an end-of-file must be used between a read and a write or vice-versa.
  93. .PP
  94. .I Freopen
  95. substitutes the named file in place of the open
  96. .IR stream .
  97. It returns the original value of
  98. .IR stream .
  99. The original stream is closed.
  100. .PP
  101. .I Freopen
  102. is typically used to attach the preopened constant names,
  103. .B stdin, stdout, stderr,
  104. to specified files.
  105. .PP
  106. .I Fdopen
  107. associates a stream with a file descriptor obtained from
  108. .I open, dup, creat,
  109. or
  110. .IR pipe (2).
  111. The
  112. .I type
  113. of the stream must agree with the mode of the open file.
  114. .SH "SEE ALSO"
  115. open(2),
  116. fclose(3), fileno(3)
  117. .SH DIAGNOSTICS
  118. .I Fopen
  119. and 
  120. .I freopen
  121. return the pointer
  122. .SM
  123. .B NULL
  124. if
  125. .I filename
  126. cannot be accessed,
  127. if too many files are already open,
  128. or if other resources needed cannot be allocated.
  129. .SH BUGS
  130. .I Fdopen
  131. is not portable to systems other than UNIX.
  132. .PP
  133. The read/write 
  134. .I types
  135. do not exist on all systems.  Those systems without
  136. read/write modes will probably treat the 
  137. .I type
  138. as if the "+" was not present.  These are unreliable in any event.
  139. .PP
  140. In order to support the same number of open files as does the system,
  141. .I fopen
  142. must allocate additional memory for data structures using
  143. .I calloc
  144. after 20 files have been opened.
  145. This confuses some programs which use their own memory allocators.
  146. An undocumented routine,
  147. .IR f_prealloc ,
  148. may be called to force immediate allocation of all internal memory
  149. except for buffers.
  150. @
  151.  
  152.  
  153. 1.1
  154. log
  155. @Initial revision
  156. @
  157. text
  158. @d88 1
  159. a88 1
  160. fclose(3)
  161. @
  162.